<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>测试</title>
  <style>
    body {
      /* 2、去除外边距 */
      margin: 0
    }

    .layout {
      /* 1、view hight 视图高度   有外边距，我们要去掉外边距 */
      height: 100vh;

      /* 4、去除下行 */
      background: #bda;
      /* 5、使用flex布局 */
      display: flex;

      /* 3、去掉外边距塌陷 */
      overflow: hidden;
    }

    /* 6 */
    .nav {
      width: 200px;
      background: pink;
    }

    /* 7采用flex布局后，水平排列 */
    .container {
      background: skyblue;
      /* flex布局的一个：等比放大，占满剩下的区域  加载flex子项里面 */
      flex: auto;
      padding: 20px;
    }
  </style>
</head>

<body>
  <!-- 一般不给root添加样式，一般在里面在加一个div -->
  <div id="root">
    <div class="layout">
      <div class="nav">
        <h2>导航菜单</h2>
        <ul>
          <li>
            <router-link to="/user">用户管理</router-link>
          </li>
          <li>
            <router-link to="/emp">员工管理</router-link>
          </li>
        </ul>
      </div>
      <div class="container">
        <!-- 一级路由出口 -->
        <router-view></router-view>
      </div>
    </div>
  </div>

  <!-- 用户组件模板 -->
  <template id="user">
    <div>
      <h1>用户管理组件</h1>
      <router-link to="/useradd">用户新增</router-link>
      <router-link to="/userlist">用户查询</router-link>
      <hr>
      <!-- 不会找二级路由出口,解决办法：让路由之间有关系，嵌套路由 -->
      <router-view></router-view>
    </div>
  </template>

  <!-- 员工组件模板 -->
  <template id="emp">
    <div>
      <h1>员工管理组件</h1>
      <router-link to="/empEdit">员工修改</router-link>
      <router-link to="/emp/Delete">员工删除</router-link>
      <hr>
      <router-view></router-view>
    </div>
  </template>


  <script src="../js/vue.js"></script>
  <script src="../js/vue-router.js"></script>
  <script>
    let User = {
      template: '#user'
    }
    let UserAdd = {
      template: ` <div><h3>用户新增组件</h3></div>`
    }
    let UserList = {
      template: ` <div><h3>用户查询组件</h3></div>`
    }
    let Emp = {
      template: '#emp'
    }
    let EmpEdit = {
      template: ` <div><h3>员工修改组件</h3></div>`
    }
    let EmpDelete = {
      template: ` <div><h3>员工删除组件</h3></div>`
    }

    let routes = [{
        path: '/user',
        component: User
      },
      {
        path: '/useradd',
        component: UserAdd
      },
      {
        path: '/userlist',
        component: UserList
      },
      {
        path: '/emp',
        component: Emp,
        // 我们希望EmpEidt和EmpDelete组件的路由处理里面展示
        children: [{ //在children里面配置的路由就是子路由 Emp就是父路由
            path: '/empEdit', //子路由也可以写绝对路径，基于根路径的写法
            component: EmpEdit
          },
          { //子路由的路径可以写相对写法,不用加/ 因为/表示根路径
            path: 'delete', //子路由访问路径为 父路由的路径/子路由路径
            component: EmpDelete
          }
        ]
      }
    ]

    let router = new VueRouter({
      routes
    })

    const vm = new Vue({
      el: '#root',
      data: {

      },
      router
    })
  </script>
</body>

</html>